The present invention relates to pointing devices used with computers and other data input devices, and methods that may be used to report a change in position of an operation instrumentality of the pointing device. More specifically, the invention relates to a format for reporting the change in position of an operation instrumentality of a pointing device.
Known mechanical computer mice have been specified to have a resolution of 400 dots per inch (dpi) and a maximum speed of 5 inches per second (ips), and may be tested before shipping to 7 ips. Some optical sensors within optical computer mice may be specified as having the same resolution as mechanical computer mice, but are capable of much higher speeds, such as speeds greater than 50 ips. In prior computer mice (both mechanical and optical), the resolution and speed limits imply that no more than 7 bits of magnitude are needed to transmit the number of dots (xcex94x, xcex94y) counted during sampling intervals. For example, values from 0 through 127 can be represented in a 7 bit value and values in the range of xe2x88x92128 through 127 can be represented by a two""s-complement value in 8 bits (a 7 bit magnitude and a sign bit).
One particular prior art optical wireless computer mouse appears to send an 8 bit signed value (using a resolution of 800 dpi), indicating an amount of movement in each of a horizontal and vertical direction, via a Radio Frequency (RF) packet every 20 milliseconds. This would yield a maximum mouse speed of about 8 ips. (50 RF packets per second (20 millisecond time intervals)xc3x97127 (maximum signed 8 bit value)xc3x970.00125 inches per dot (800 dpi resolution)=7.9375 inches per second). Using a resolution of 400 dpi would yield a maximum speed of about 16 ips; however, the maximum tracking speed that a low speed USB device can support is 36 ips (at a 400 dpi resolution).
A ten-fold increase in speed, as may be attained by an optical mouse, means that the xcex94x, xcex94y data could have a magnitude up to ten times larger than the magnitude for prior art mechanical mice. Therefore, 4 additional bits, or 11 bits would be required to report such a magnitude and 12 bits would be required to report the 11 bit magnitude and a sign bit. Since the smallest unit of addressable memory is a byte, an additional byte of memory would be required to accommodate the additional bits for reporting such a large magnitude. Given that available memory, such as Random Access Memory (RAM), is limited, a means for reporting such a large magnitude without using additional bits to represent the magnitude would be desirable.
The present invention addresses the above situation by providing a pointing device and a method for reporting a movement amount of an operation instrumentality of a pointing device, such that fewer bits may be used to report the movement amount of the operation instrumentality than when using a conventional reporting method.
In a first aspect of the invention, a method is provided for reporting a movement amount of an operation instrumentality of a pointing device. A first value representing the movement amount in a first direction is examined. A determination is made as to whether scaling of the first value is to be performed based on the first value. When scaling is to be performed, the first value is scaled by the first scaling factor and a first scaling indicator is set to indicate that the first value is scaled by the first scaling factor. Reporting information is then output. If no scaling has been performed, the reporting information includes the first value. If scaling has been performed, the reporting information includes the scaled first value and the first scaling indicator.
In a second aspect of the invention, a pointing device is provided. The pointing device includes a tracking engine, determining means, a scaler, and a position reporter. The tracking engine is configured to track a movement amount of an operation instrumentality of the pointing device in a first direction, and to indicate the movement amount as a first value. The determining means is configured to examine the first value to determine whether scaling of the first value should be performed based on the first value. The scaler is configured to scale the first value by a first scaling factor when the determining means determines that scaling is to be performed. The position reporter is configured to report information including the first value if no scaling has been performed, and to report information including the scaled first value and the first scaling indicator, corresponding to the first scaling factor, if scaling has been performed.
In a third aspect of the invention, a method is provided for reporting a movement amount of an operation instrumentality of a pointing device. A first value representing the movement amount in a first direction is examined. The first value is checked to determine whether the first value can be represented by a first predetermined number of bits. When the first value cannot be represented by the first predetermined number of bits, the first value is scaled by a first scaling factor and a first scaling indicator is set to indicate that the first value is scaled. Reporting information is then output. If no scaling has been performed, the reporting information includes the first value. If scaling has been performed, the reporting information includes the scaled first value and the first scaling indicator.
In a fourth aspect of the invention, a method is provided for reporting a movement amount of an operation instrumentality of a pointing device. A first value representing the movement amount in a first direction is examined. The first value is checked to determine whether the first value can be represented by a first predetermined number of bits. When the first value can be represented by the first predetermined number of bits, a first scaling indicator is set to indicate that the first value is unscaled. When the first value cannot be represented by the first predetermined number of bits, the first value is checked to determine whether the first value can be represented by a second predetermined number of bits, which is different from the first predetermined number of bits. When the first value can be represented by the second predetermined number of bits, the first value is scaled by a first scaling factor and a first scaling indicator is set to indicate that the first value is scaled by the first scaling factor. When the first value cannot be represented by the second predetermined number of bits, the first value is checked to determine whether the first value can be represented by a third predetermined number of bits, which is different from the first and the second predetermined numbers of bits. When the first value can be represented by the third predetermined number of bits, the first value is scaled by a second scaling factor and the first scaling indicator is set to indicate that the first value is scaled by the second scaling factor. Reporting information is then output. If no scaling has been performed, the reporting information includes the first value. If scaling has been performed, the reporting information includes the scaled first value and the first scaling indicator.
In a fifth aspect of the invention, a pointing device is provided. The pointing device includes a tracking engine, determining means, a scaler, and a position reporter. The tracking engine is configured to track a movement amount of an operation instrumentality of the pointing device in a first direction, and to indicate the movement amount as a first value. The determining means is configured to determine whether the first value can be represented by a first predetermined number of bits. When the determining means determines that the first value can be represented by the first predetermined number of bits, a first scaling indicator is set to indicate that the first value is unscaled. When the first value cannot be represented by the first predetermined number of bits, the determining means determines whether the first value can be represented by a second predetermined number of bits, which is different from the first predetermined number of bits. When the first value can be represented by the second predetermined number of bits, the scaler is configured to scale the first value by a first scaling factor and to set a first scaling indicator to indicate that the first value is scaled by the first scaling factor. When the determining means determines that the first value cannot be represented by the second predetermined number of bits, the determining means determines whether the first value can be represented by a third predetermined number of bits, which is different from the first and the second predetermined numbers of bits. When the determining means determines that the first value can be represented by the third predetermined number of bits, the scaler is configured to scale the first value by a second scaling factor, and to set the first scaling indicator to indicate that the first value is scaled by the second scaling factor. The position reporter is configured to report information including the first value if no scaling has been performed, and to report information including the scaled first value and the first scaling indicator, if scaling has been performed.
In a sixth aspect of the invention, a pointing device having a tracking engine, determining means, a scaler and a position reporter is provided. The tracking engine is configured to track a movement amount of an operation instrumentality of the pointing device in a first direction, and to indicate the movement amount as a first value. The determining means is configured to determine the smallest of a first, second and third ranges of values into which the first value falls, and to set a first scaling indicator to indicate scaling by a first selected scaling factor based on the determined range if the first value falls into one of the first, the second and the third ranges. A scaler is configured to scale the first value by the first selected scaling factor. The position reporter is configured to report information including the first value if no scaling has been performed, and to report information including the scaled first value and the first scaling indicator, if scaling has been performed.